<html>
<head><meta charset="utf-8"><title>dry run? · t-compiler/wg-polonius · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/index.html">t-compiler/wg-polonius</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/dry.20run.3F.html">dry run?</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="177794106"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/dry%20run%3F/near/177794106" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/dry.20run.3F.html#177794106">(Oct 10 2019 at 09:44)</a>:</h4>
<p>OK, my <a href="https://nikomatsakis.github.io/rust-belt-rust-2019/" target="_blank" title="https://nikomatsakis.github.io/rust-belt-rust-2019/">polonius talk is basically ready</a> -- I just did a practice run and it weighed in at <em>exactly</em> 30 minutes.</p>



<a name="177794113"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/dry%20run%3F/near/177794113" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/dry.20run.3F.html#177794113">(Oct 10 2019 at 09:44)</a>:</h4>
<p>Which may or may not have any correlation to actual time when talking :)</p>



<a name="177794125"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/dry%20run%3F/near/177794125" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/dry.20run.3F.html#177794125">(Oct 10 2019 at 09:44)</a>:</h4>
<p>Anyway, I think i'd like to do a dry run, though I'm thinking I want to recruit for the audience a few "lay people" who are less familiar with the borrow checker's workings :)</p>



<a name="177795302"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/dry%20run%3F/near/177795302" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/dry.20run.3F.html#177795302">(Oct 10 2019 at 10:03)</a>:</h4>
<p>tiny "polonus" typo starting on slide 59, <a href="https://github.com/nikomatsakis/rust-belt-rust-2019/blob/master/content/polonius.md#how-polonus-does-it" target="_blank" title="https://github.com/nikomatsakis/rust-belt-rust-2019/blob/master/content/polonius.md#how-polonus-does-it">here</a></p>



<a name="177795575"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/dry%20run%3F/near/177795575" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/dry.20run.3F.html#177795575">(Oct 10 2019 at 10:07)</a>:</h4>
<p>"huge emoji" <span aria-label="warning" class="emoji emoji-26a0" role="img" title="warning">:warning:</span> "Total speculation ahead" -- this is great</p>



<a name="177795649"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/dry%20run%3F/near/177795649" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/dry.20run.3F.html#177795649">(Oct 10 2019 at 10:08)</a>:</h4>
<p>calling it now, this talk is going to be great</p>



<a name="177797075"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/dry%20run%3F/near/177797075" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pachi <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/dry.20run.3F.html#177797075">(Oct 10 2019 at 10:32)</a>:</h4>
<p>It's fantastic! The part that was most difficult for me, and I had to reread back and forth a couple of times is that of "Incorporating named lifetimes in NLL", until I realized that the None match arm is orthogonal to the return value of the function which needs the 'a lifetime only for it's Some(v) =&gt;v arm. Other than that, I could understand it, and I'm a total newbie!<br>
Congrats!</p>



<a name="177824484"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/dry%20run%3F/near/177824484" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/dry.20run.3F.html#177824484">(Oct 10 2019 at 15:58)</a>:</h4>
<blockquote>
<p>tiny "polonus" typo </p>
</blockquote>
<p><a href="https://github.com/nikomatsakis/rust-belt-rust-2019/pull/1" target="_blank" title="https://github.com/nikomatsakis/rust-belt-rust-2019/pull/1">https://github.com/nikomatsakis/rust-belt-rust-2019/pull/1</a></p>



<a name="177839997"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/dry%20run%3F/near/177839997" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Weiss <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/dry.20run.3F.html#177839997">(Oct 10 2019 at 18:35)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> your speculated use case at the end is something I've wanted so many times <span aria-label="smile" class="emoji emoji-263a" role="img" title="smile">:smile:</span></p>



<a name="177840057"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/dry%20run%3F/near/177840057" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Weiss <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/dry.20run.3F.html#177840057">(Oct 10 2019 at 18:35)</a>:</h4>
<p>and my sense is that your speculation is probably well-founded. <span aria-label="wink" class="emoji emoji-1f609" role="img" title="wink">:wink:</span></p>



<a name="177840411"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/dry%20run%3F/near/177840411" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/dry.20run.3F.html#177840411">(Oct 10 2019 at 18:39)</a>:</h4>
<p>was that a spoiler for the next Oxide draft ? :)</p>



<a name="177868545"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/dry%20run%3F/near/177868545" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Weiss <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/dry.20run.3F.html#177868545">(Oct 11 2019 at 01:01)</a>:</h4>
<p>It does seem like something I could probably work out how to do in Oxide, but it's certainly not something I've done already.</p>



<a name="177924220"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/dry%20run%3F/near/177924220" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/dry.20run.3F.html#177924220">(Oct 11 2019 at 16:30)</a>:</h4>
<blockquote>
<p>It's fantastic! The part that was most difficult for me, and I had to reread back and forth a couple of times is that of "Incorporating named lifetimes in NLL", until I realized that the None match arm is orthogonal to the return value of the function which needs the 'a lifetime only for it's Some(v) =&gt;v arm. Other than that, I could understand it, and I'm a total newbie!<br>
Congrats!</p>
</blockquote>
<p>great feedback! I'm trying to think how to make that clearer, not sure</p>



<a name="177924234"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/dry%20run%3F/near/177924234" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/dry.20run.3F.html#177924234">(Oct 11 2019 at 16:30)</a>:</h4>
<p>maybe something that the soundtrack would help with</p>



<a name="177924318"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/dry%20run%3F/near/177924318" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/dry.20run.3F.html#177924318">(Oct 11 2019 at 16:31)</a>:</h4>
<p>maybe <span class="user-mention" data-user-id="125416">@pachi</span> it would help to just hide the <code>&amp;map[22]</code> return value and replace it with <code>...</code>?</p>



<a name="177924845"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/dry%20run%3F/near/177924845" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pachi <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/dry.20run.3F.html#177924845">(Oct 11 2019 at 16:37)</a>:</h4>
<p>Or just say that, in that case, "the lifetime affects just one of the match arms" but its presence in the function signature taints both, unless NLL works for this</p>



<a name="177940551"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/dry%20run%3F/near/177940551" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/dry.20run.3F.html#177940551">(Oct 11 2019 at 19:26)</a>:</h4>
<p><span aria-label="thumbs up" class="emoji emoji-1f44d" role="img" title="thumbs up">:thumbs_up:</span> on the latest introductory changes, I felt "what is Polonius" was missing but then forgot to say anything :(</p>



<a name="178785984"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/dry%20run%3F/near/178785984" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/dry.20run.3F.html#178785984">(Oct 22 2019 at 19:08)</a>:</h4>
<p>I never got around to the dry run obviously but I think the talk went fairly well</p>



<a name="178786005"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/dry%20run%3F/near/178786005" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/dry.20run.3F.html#178786005">(Oct 22 2019 at 19:08)</a>:</h4>
<p>as an inveterate perfectionist I was not satisfied with certain aspects, but I know better than to say which :P</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>